<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script type="text/javascript">
        window.onload=function()
        {
            //声明变量
            let a;
            let b,c,d;
            let e=100;
            let f=200;

            //1.变量不能重复声明
            let star="one";
            //let star="two";此时会报错，不能被再次赋值
            //如果用var声明变量，那么变量就可以再次被赋值

            //2.块级作用域 全局 函数 eval（ES5严格模式中出出现）
            //块级作用域只在代码块内作用
            //例如if else while for
            {
                let girl="Asuka";
            }
            //console.log(girl);此时控制台显示报错

            //3.不存在变量提升
            console.log(song1);//此时控制台不会像girl那样报错，而是显示undefined
            var song1="song1";
            //console.log(song2);//此时控制台就会报错，因为let声明的变量不会提升
            let song2="song2";

            //4.不影响作用域链
            {
                let school="尚硅谷";
                function fn()
                {
                    console.log(school);
                }
                fn();
            }
        }
    </script>
</head>
<body>
    
</body>
</html>